home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 88 / PCZONE#88APR00.iso / Unreal Tournament / Mutators / KOTAv155.umod < prev    next >
INI File  |  2000-02-08  |  85KB  |  1,102 lines

  1. [Setup]
  2. Product=King Of The Arena
  3. Version=155
  4. Archive=KOTAv150.umod
  5. SrcPath=.
  6. MasterPath=..
  7. Requires=UnrealTournament400Requirement
  8. Group=SetupGroup
  9. Group=umodINIGroup
  10. Group=KOTAGroup
  11. Group=umodIncludeFilesGroup
  12.  
  13. [UnrealTournament400Requirement]
  14. Product=UnrealTournament
  15. Version=400
  16.  
  17. [SetupGroup]
  18. Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=608,Flags=3)
  19. Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=631,Flags=3)
  20.  
  21. [umodINIGroup]
  22. AddIni=UnrealTournament.ini,Engine.GameEngine.ServerPackages=KOTA
  23.  
  24. [KOTAGroup]
  25. File=(Src=System\KOTA.u,Size=50908)
  26. File=(Src=System\KOTA.int,Size=291)
  27. File=(Src=Help\KOTAv155Readme.txt,Size=3318)
  28.  
  29. [umodIncludeFilesGroup]
  30. File=(Src=Images\k_O_t_A.bmp,Size=28958)
  31.  
  32. [Setup]
  33. LocalProduct=King Of The Arena
  34. ReadMe=Help\KOTAv155ReadMe.txt
  35. SetupWindowTitle=Installing KOTA
  36. AutoplayWindowTitle=King Of The Arena Options
  37. ProductURL=http://www.planetunreal.com/thelaboratory/mymods/kotav150.umod
  38. VersionURL=http://www.planetunreal.com/thelaboratory/mymods/kota.htm
  39. Developer={KiX}ProfessorGib
  40. DeveloperURL=http://www.planetunreal.com/thelaboratory/
  41. Logo=Images\k_O_t_A.bmp
  42.  
  43. [UnrealTournament400Requirement]
  44. LocalProduct=UnrealTournament
  45. ProductURL=http://www.unrealtournament.com/
  46. VersionURL=http://unreal.epicgames.com/
  47. Developer=Epic Games, Inc.
  48. DeveloperURL=http://www.epicgames.com/
  49. ┴â*₧E∩@É.╛v║`⌠í3a╓╙îoα)Mó╦É∩NoneAddItemKOTASetHelpSetTextCreateControl
  50. GetValue2Core GiveItemToUWindowCreatedNotify    SetValueAddPage    GetValueBroadcastKingMessage    HuntKing SetEditableSystemSetMaxLength SetHelpTextSetNumericOnlyModifyPlayer
  51. ScoreKillFindInventoryType
  52. WeaponSetGiveDoubleEnforcers BecomeItemWeapon ReplaceWith    GiveAmmo SetTwoHandsGiveToTickAmmoSetDefaultDisplayPropertiesPickupPostBeginPlayPreBeginPlay
  53. BeginPlayClientMessage PlayerPawnEngineSetFontSPTH
  54. kingbonuskingkillerbonuscustompenaltybKingKillerBonusbKingSuicideReset
  55. ActivatedbBotsHuntKingKOTA_DefaultWeaponsKOTAConfigWindowKOTA_PickupAwardsKOTA_SuicideScoreOptionsKOTA_KingScoreOptionsKOTACW    MenuHelpExecute MenuCaptionUMenu SetUpSlaveCheckReplacement HealthVialMedBox TrainingDMTranslocator
  56. SetOrdersAddInventoryAllowsBroadcastKOTAModMenuItemKOTA_WeaponAwards DownWeaponBotSetSwitchPriorityIdle bKingBonusbHarshPenaltySetHand    SetEnemyIdle2CPHDKSRHAttackSetDisplayPropertiesPOwnerStyleMsg
  57. ItemClassDynamicLoadObjectCancelButton ScriptTextStaticSaveConfigItem PlayerNameEjActor    WinWidthRootPawnWinTop    bCheckediClass ReturnValuePackageCWinLeftObject MouseIsOver WindowTitleUWindowFramedWindowUWindowRootWindowLightSaturation
  58. WinHeightEditBoxWidthLevelAlign    AIRating Handedness
  59. bCanThrow StrProperty    HelpTextTexture
  60. Inventory    GameInfobMeshEnviroMapEnemyScoreGame    nextPawnbBeep    PawnList    LightHue NextMutatorbSuperRelevant ClientClassInv
  61. bHeldItem TextBufferPendingWeapon    AmmoName    AmmoType AmmoAmountMaxAmmodoubleenforcer    enforcerLightBrightnessCreateWindowAggressiveness CampingRate OrderObjectkingBotpackUWindowPulldownMenuSetSizeClassPropertyUWindowCheckboxUWindowWindowUWindowDialogControl RespawnTimeUWindowComboControl DoubleNameMoronCPSupportingPlayerSlaveEnforcer AmbientGlow
  62. LightTypeUWindowPageControlUMenuRootWindowUMenuStatusBarUMenuModMenuItem Initialized
  63. StatusBar    MenuItemsvalObjectPropertyUWindowDialogClientWindowUWindowSmallCloseButtonUWindowEditControlUWindowPageWindowUWindowPulldownMenuItem    FunctionbUnlit    bSizablebKingWeaponsReplaced AmmoRemovedItemsReplaced    KingNameFirstKingMessageNewKingMessage KingSuicidesuicidepenaltykillsPlayerReplicationInfoMutatorbCustomPenalty    ItemName
  64. DeltaTime bNoPenalty
  65. LevelInfoWeaponClassesDefaultWeaponsPickupClassesOtherKiller aClassNameFloatPropertyBoolPropertyHuntedhunter IntProperty WeaponItemByteProperty
  66. Enforcer1
  67. Enforcer2WC    H_Offset DoKingBonusDoKingKillerBonusHunt EKingBonusEKingKillerBonusSuicidePenaltyTypeDoKingSuicideResetECustomPenaltynopecustomharsh LightRadius LightEffect
  68. bIsPlayerDWPCáCH                  a£æzoálÇñπÅ▓t∙Å▓t∙à9δ }Å▓t∙Å▓t∙Å▓t∙Å▓t∙à9δ }Å▓t∙Å▓t∙¡╤╕ÖBÅ▓t∙¡╤╕ÖBÅ▓t∙¡╤╕ÖBÅ▓t∙¡╤╕ÖBà9δ }ûétç@ûétç@ûétç@ûétç@ûétç@ûétç@ûétç@ûétç@à9δ }ûétç@ûétç@ûétç@ûétç@ûétç@ûétç@ûétç@ûétç@Å▓t∙Å▓t∙Å▓t∙Å▓t∙Å▓t∙Å▓t∙Å▓t∙à9δ }Å▓t∙┐²»ΘÅ▓t∙à9δ }Å▓t∙à9δ }à9δ }ÿ╠j@úÿ╠j@úÿ╠j@úÿ╠j@úà9δ }Å▓t∙¬Æ╘√Rà9δ }à9δ }Æ.Ω;√à9δ }à9δ }£æzoà9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }Æ.Ω;√à9δ }à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }Æ.Ω;√à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }à9δ }Æ.Ω;√à9δ }Æ.Ω;√álÇñπ¬Æ╘√Rà9δ }à9δ }ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\ÜIÇ+\à9δ }à9δ }ÿ╠j@úÿ╠j@úÿ╠j@úÿ╠j@úÿ╠j@úálÇñπè=òéè=òéè=òéè=òéè=òéè=òé¬Æ╘√RΦìü├╣¬Æ╘√Rà9δ }à9δ }à9δ }à9δ }*öM╙N╙1╙0╙3╙."-"/"E    çÇà ÇàMOA    çQDçFû&#ÜÅ    @@çTÇàKÇÅ[æææG    @@N@@àÇàIÇè(    @@É3Éÿ5ëÿÉàL½àà?@@ÇgÇ,Çì)Ç2Çì.Çì+ÇìvÇ"É$Çÿ4Çì@<@ 9@*@C@
  69. Çà;@7@8@ÿ>@BûHSeÇÇà╕R@GÇ@:@J!Ç@ÑoE6                  "U√₧╫Ñ⌠î╟╦ë£æzoç_πë4ë£æzoåæimƒåæimƒ£{OΩαì)µ¢ⁿì)µ¢ⁿåæimƒåæimƒ£{OΩαì)µ¢ⁿåæimƒåæimƒ£{OΩαç_πë4ç_πë4ç_πë4ç_πë4ë£æzoç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4    ö¼Dj5                  2V m█D¼ⁿM╗∩┴o √┴o √    öXÇìOÇÑl|4                  RY¿BΩ╣Ñ⌠î╟╦ë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoë£æzoç_πë4ë£æzoåæimƒåæimƒ£{OΩαì)µ¢ⁿì)µ¢ⁿåæimƒåæimƒ£{OΩαì)µ¢ⁿåæimƒåæimƒ£{OΩαç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ë£æzoç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4    ö Çàa@^@ÑznH                  *]Ç    A²Ñ⌠î╟╦ë£æzoç_πë4ë£æzoåæimƒåæimƒ£{OΩαì)µ¢ⁿì)µ¢ⁿåæimƒåæimƒ£{OΩαì)µ¢ⁿåæimƒåæimƒ£{OΩαç_πë4ç_πë4ç_πë4ç_πë4ë£æzoç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4    ö`@₧NL9                  _αdW*₧┌π╠~½┤Φ7`½┤Φ7`½┤Φ7`½┤Φ7`½┤Φ7`╕┐╨Æ    öd@\@Ñhs7                  Fb8$*¿Ñ⌠î╟╦ç_πë4ë£æzoë£æzoë£æzoç_πë4ë£æzoë£æzoë£æzoë£æzoë£æzoë£æzoë£æzoë£æzoÉ|.X┌ë£æzoë£æzoæt╡≡ë£æzoåæimƒåæimƒ£{OΩαì)µ¢ⁿì)µ¢ⁿåæimƒåæimƒ£{OΩαì)µ¢ⁿåæimƒåæimƒ£{OΩαÉ|.X┌É|.X┌É|.X┌É|.X┌ë£æzoç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4ç_πë4æt╡≡æt╡≡ë£æzoæt╡≡æt╡≡æt╡≡æt╡≡æt╡≡    öS]&%If checked, penalty type is ignored.,]b`Custom: You set frag loss. Harsh: King loses all frags except the bonus ones for becoming king.R]0/Only applies if penalty type is set to custom.Ñmi8                  Fc².√cÑ⌠î╟╦ë£æzoÉ|.X┌ë£æzoë£æzoÉ|.X┌ë£æzoë£æzoÉ|.X┌ë£æzoë£æzoæt╡≡ë£æzoë£æzoæt╡≡ë£æzoåæimƒåæimƒ£{OΩαì)µ¢ⁿì)µ¢ⁿåæimƒåæimƒ£{OΩαì)µ¢ⁿåæimƒåæimƒ£{OΩαÉ|.X┌É|.X┌É|.X┌ë£æzoÉ|.X┌É|.X┌É|.X┌ë£æzoÉ|.X┌É|.X┌É|.X┌ë£æzoæt╡≡æt╡≡ë£æzoæt╡≡æt╡≡æt╡≡æt╡≡æt╡≡æt╡≡ë£æzoæt╡≡æt╡≡æt╡≡æt╡≡    ö@pÇñ
  70. ╥.É É A≡AHCÇ?ó$)King gets bonus points for kills?-⌐ -@3.É É AHBHCÇ?3ó$3$Bonus for becoming the king?3-⌐ ->".É É A AHCÇ?"ó$"Bots Hunt King?"-⌐ -*.æ æ AîBHC»»?,ó$ S ?',*# of bonus frags for King's kills:─pA.æ æ A┤BHC»»?,ó$ S (',+# of bonus frags for becoming king:─pA m6class KOTA_SuicideScoreOptions extends UWindowPageWindow config(KOTA);
  71.  
  72. var UWindowComboControl SuicidePenaltyType;
  73. var UWindowCheckBox DoKingSuicideReset;
  74. var UWindowEditControl ECustomPenalty;
  75. var string nope, custom, harsh, DKSRH, SPTH, CPH;
  76.  
  77. function Created()
  78. {
  79.     Super.Created();
  80.  
  81.     DoKingSuicideReset = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 10, 150, 1));
  82.     DoKingSuicideReset.Align = TA_Left;
  83.     DoKingSuicideReset.SetText("Upon suicide, dethrone King?");
  84.     DoKingSuicideReset.SetHelpText(DKSRH);
  85.     DoKingSuicideReset.bChecked = class'KOTA.KOTA'.default.bKingSuicideReset;
  86.     
  87.     // Combo box.
  88.     SuicidePenaltyType = UWindowComboControl( CreateControl( class'UWindowComboControl', 10, 30, 150, 1 ) );
  89.     SuicidePenaltyType.SetText("Penalty Type:");
  90.     SuicidePenaltyType.SetFont(F_Normal);
  91.     SuicidePenaltyType.SetEditable( FALSE );
  92.     SuicidePenaltyType.EditBoxWidth = 60;
  93.     SuicidePenaltyType.Align = TA_Left;
  94.     SuicidePenaltyType.AddItem( "None", Nope );
  95.     SuicidePenaltyType.AddItem( "Custom", Custom );
  96.     SuicidePenaltyType.AddItem( "Harsh", Harsh );
  97.     SuicidePenaltyType.SetHelpText(SPTH);
  98.  
  99.     ECustomPenalty = UWindowEditControl(CreateControl(class'UWindowEditControl', 10, 50, 200, Winheight-30));
  100.     eCustomPenalty.Align = TA_Left;
  101.     eCustomPenalty.SetValue(string(class'KOTA.KOTA'.default.CustomPenalty));
  102.     eCustomPenalty.SetNumericOnly(true);
  103.     eCustomPenalty.SetMaxLength(2);
  104.     eCustomPenalty.SetText("# of frags suicided king loses:");
  105.     eCustomPenalty.SetHelpText(CPH);
  106.     eCustomPenalty.EditBoxWidth = 25;
  107. }
  108.  
  109. function Notify( UWindowDialogControl C, byte E )
  110. {
  111.     local int sval;
  112.  
  113.     Super.Notify( C, E );
  114.  
  115.     switch(E)
  116.     {
  117.         case DE_Change:
  118.             switch(C)
  119.             {
  120.                 case SuicidePenaltyType:
  121.                     if ( SuicidePenaltyType.GetValue() == "nope" )
  122.                     {    
  123.                         class'KOTA.KOTA'.default.bNoPenalty = True;
  124.                         class'KOTA.KOTA'.default.bCustomPenalty = False;
  125.                         class'KOTA.KOTA'.default.bHarshPenalty = False;
  126.                     }
  127.                     else if ( SuicidePenaltyType.GetValue() == "Custom" )
  128.                     {    
  129.                         class'KOTA.KOTA'.default.bNoPenalty = False;
  130.                         class'KOTA.KOTA'.default.bCustomPenalty = True;
  131.                         class'KOTA.KOTA'.default.bHarshPenalty = False;
  132.                     }
  133.                     else
  134.                     {
  135.                         class'KOTA.KOTA'.default.bNoPenalty = False;
  136.                         class'KOTA.KOTA'.default.bCustomPenalty = False;
  137.                         class'KOTA.KOTA'.default.bHarshPenalty = True;
  138.                     }
  139.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  140.                     saveconfig();
  141.                 break;
  142.                 
  143.                 case DoKingSuicideReset:
  144.                     class'KOTA.KOTA'.default.bKingSuicideReset = DoKingSuicideReset.bChecked;
  145.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  146.                     saveconfig();
  147.                 break;
  148.                 
  149.                 case eCustompenalty:
  150.                     class'KOTA.KOTA'.default.custompenalty=int(ecustompenalty.GetValue());
  151.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  152.                     SaveConfig();
  153.                 break;
  154.             }
  155.         break;
  156.     
  157.         if(E == DE_MouseMove)
  158.           {
  159.             if(UMenuRootWindow(Root) != None)
  160.               if(UMenuRootWindow(Root).StatusBar != None)
  161.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  162.           }
  163.         
  164.         if(E == DE_HelpChanged && C.MouseIsOver())
  165.           {
  166.             if(UMenuRootWindow(Root) != None)
  167.               if(UMenuRootWindow(Root).StatusBar != None)
  168.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  169.           }
  170.         
  171.         if(E == DE_MouseLeave)
  172.           {
  173.             if(UMenuRootWindow(Root) != None)
  174.               if(UMenuRootWindow(Root).StatusBar != None)
  175.             UMenuRootWindow(Root).StatusBar.SetHelp("");        
  176.           }
  177.     }
  178. }    
  179.     
  180. íf- ,µàí-,,
  181. Ç$-
  182. _" -*"-⌐ ÖbR
  183. ¢ -@-⌐ ÖbR
  184. ╫3 ->-⌐ ÖbR
  185.  ?J ÖbR
  186. O (Jb ÖR
  187.   â╢Ü:,,╢w.åï*╢w.åïô*.åïô-ª+éÜ:,,-░+w.åï*+w.åïô*.åïô-ªÇÜ:,,    Çw.åï*Çw.åïô*.åïô
  188.    ╩{
  189. NX╩φûC╣C⌠¼»ï╥╥?,δ¼»ï»»?, aclass KOTAModMenuItem expands UMenuModMenuItem;
  190.  
  191. function Execute()
  192.     MenuItem.Owner.Root.CreateWindow(class'KOTA.KOTAConfigWindow',10,10,150,100);
  193. }
  194.  
  195. ;class KOTA_DefaultWeapons extends UwindowPageWindow config(KOTA);
  196.  
  197. var UWindowComboControl DW[9];
  198. var int H_Offset;
  199.  
  200. function Created()
  201. {    
  202.     local int i,j;        
  203.     Super.Created();    
  204.     H_Offset = 10;        
  205.     for (i=0;i<9;i++)    
  206.     {        
  207.         j = i + 1;
  208.         dw[i] = UWindowComboControl( CreateControl( class'UWindowComboControl', 10, H_offset, 250, 1 ) );
  209.         dw[i].EditBoxWidth = 156;
  210.         dw[i].SetEditable( FALSE );
  211.         dw[i].SetText( "Weapon Number "$j$":");
  212.         dw[i].Align = TA_Left;
  213.         dw[i].SetValue(class'KOTA.KOTA'.default.DefaultWeapons[i]);
  214.         DW[i].AddItem("None", "");
  215.         dw[i].AddItem("ImpactHammer", "BotPack.ImpactHammer");
  216.         dw[i].AddItem("Chainsaw", "BotPack.Chainsaw");
  217.         dw[i].AddItem("Translocator", "BotPack.Translocator");
  218.         dw[i].AddItem("Enforcer", "BotPack.Enforcer");
  219.         dw[i].AddItem("Double Enforcer", "BotPack.DoubleEnforcer");
  220.         dw[i].AddItem("GES BioRifle", "BotPack.UT_BioRifle");
  221.         dw[i].AddItem("ASMD Shock Rifle", "BotPack.ShockRifle");
  222.         dw[i].AddItem("ASMD Super Shock Rifle", "BotPack.SuperShockRifle");
  223.         dw[i].AddItem("Pulse Gun", "BotPack.PulseGun");
  224.         dw[i].AddItem("Ripper", "BotPack.Ripper");
  225.         dw[i].AddItem("Minigun", "BotPack.Minigun2");
  226.         dw[i].AddItem("Flak Cannon", "BotPack.UT_FlakCannon");
  227.         dw[i].AddItem("Rocket Launcher", "BotPack.UT_Eightball");
  228.         //dw[i].AddItem("Cueball", "KOTA.CueBall");
  229.         //dw[i].AddItem("PsYcHoBaLL", "KOTA.AsylumCueBall");
  230.         dw[i].AddItem("Sniper Rifle", "BotPack.SniperRifle");
  231.         DW[i].AddItem("Redeemer", "BotPack.WarHeadLauncher");
  232.         H_Offset += 20;      
  233.     }
  234. }
  235.  
  236. function Notify( UWindowDialogControl C, byte E )
  237. {
  238.     local int i;
  239.     
  240.     Super.Notify( C, E );
  241.     
  242.     switch(E)
  243.     {
  244.         case DE_Change:
  245.             switch(C)
  246.             {
  247.                 case dw[0]:
  248.                     class'KOTA.KOTA'.default.DefaultWeapons[0]=dw[0].GetValue2();
  249.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  250.                     SaveConfig();
  251.                 break;
  252.                 case dw[1]:
  253.                     class'KOTA.KOTA'.default.DefaultWeapons[1]=dw[1].GetValue2();
  254.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  255.                     SaveConfig();
  256.                 break;
  257.                 case dw[2]:
  258.                     class'KOTA.KOTA'.default.DefaultWeapons[2]=dw[2].GetValue2();
  259.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  260.                     SaveConfig();
  261.                 break;
  262.                 case dw[3]:
  263.                     class'KOTA.KOTA'.default.DefaultWeapons[3]=dw[3].GetValue2();
  264.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  265.                     SaveConfig();
  266.                 break;
  267.                 case dw[4]:
  268.                     class'KOTA.KOTA'.default.DefaultWeapons[4]=dw[4].GetValue2();
  269.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  270.                     SaveConfig();
  271.                 break;
  272.                 case dw[5]:
  273.                     class'KOTA.KOTA'.default.DefaultWeapons[5]=dw[5].GetValue2();
  274.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  275.                     SaveConfig();
  276.                 break;
  277.                 case dw[6]:
  278.                     class'KOTA.KOTA'.default.DefaultWeapons[6]=dw[6].GetValue2();
  279.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  280.                     SaveConfig();
  281.                 break;
  282.                 case dw[7]:
  283.                     class'KOTA.KOTA'.default.DefaultWeapons[7]=dw[7].GetValue2();
  284.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  285.                     SaveConfig();
  286.                 break;
  287.                 case dw[8]:
  288.                     class'KOTA.KOTA'.default.DefaultWeapons[8]=dw[8].GetValue2();
  289.                     class'KOTA.KOTA'.static.StaticSaveConfig();
  290.                     SaveConfig();
  291.                 break;
  292.             }
  293.         break;
  294.        
  295.         if(E == DE_MouseMove)
  296.           {
  297.             if(UMenuRootWindow(Root) != None)
  298.               if(UMenuRootWindow(Root).StatusBar != None)
  299.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  300.           }
  301.  
  302.         if(E == DE_HelpChanged && C.MouseIsOver())
  303.           {
  304.             if(UMenuRootWindow(Root) != None)
  305.               if(UMenuRootWindow(Root).StatusBar != None)
  306.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  307.           }
  308.         
  309.         if(E == DE_MouseLeave)
  310.           {
  311.             if(UMenuRootWindow(Root) != None)
  312.               if(UMenuRootWindow(Root).StatusBar != None)
  313.             UMenuRootWindow(Root).StatusBar.SetHelp("");        
  314.           }
  315.     }
  316. }
  317.  
  318. {5class KOTA_KingScoreOptions extends UWindowPageWindow config(KOTA);
  319.  
  320. var UWindowCheckBox DoKingBonus, DoKingKillerBonus, Hunt;
  321. var UWindowEditControl EKingBonus, EKingKillerBonus;
  322.  
  323. function Created()
  324. {
  325.     DoKingBonus = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 30, 200, 1));
  326.     DoKingBonus.Align = TA_Left;
  327.     DoKingBonus.SetText("King gets bonus points for kills?");
  328.     DoKingBonus.bChecked = class'KOTA.KOTA'.default.bKingBonus;
  329.  
  330.     DoKingKillerBonus = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 50, 200, 1));
  331.     DoKingKillerBonus.Align = TA_Left;
  332.     DoKingKillerBonus.SetText("Bonus for becoming the king?");
  333.     DoKingKillerBonus.bChecked = class'KOTA.KOTA'.default.bKingKillerBonus;
  334.  
  335.     Hunt = UWindowCheckBox(CreateControl(class'UWindowCheckBox', 10, 10, 200, 1));
  336.     Hunt.Align = TA_Left;
  337.     Hunt.SetText("Bots Hunt King?");
  338.     Hunt.bChecked = class'KOTA.KOTA'.default.bBotsHuntKing;
  339.  
  340.     EKingBonus = UWindowEditControl(CreateControl(class'UWindowEditControl', 10, 70, 200, Winheight-30));
  341.     EKingBonus.Align = TA_Left;
  342.     EKingBonus.SetValue(string(class'KOTA.KOTA'.default.KingBonus));
  343.     eKingBonus.SetNumericOnly(true);
  344.     eKingBonus.SetMaxLength(2);
  345.     eKingBonus.SetText("# of bonus frags for King's kills:");
  346.     eKingBonus.EditBoxWidth = 15;
  347.  
  348.     eKingKillerBonus = UWindowEditControl(CreateControl(class'UWindowEditControl', 10, 90, 200, Winheight-30));
  349.     eKingKillerBonus.Align = TA_Left;
  350.     eKingKillerBonus.SetValue(string(class'KOTA.KOTA'.default.KingKillerBonus));
  351.     eKingKillerBonus.SetNumericOnly(true);
  352.     eKingKillerBonus.SetMaxLength(2);
  353.     eKingKillerBonus.SetText("# of bonus frags for becoming king:");
  354.     eKingKillerBonus.EditBoxWidth = 15;
  355. }
  356.  
  357. function Notify(UWindowDialogControl C, byte E)
  358. {
  359.     local int sval;
  360.     
  361.     Super.Notify(C, E);
  362.  
  363.     switch(E)
  364.     {
  365.         case DE_Change:
  366.           switch(C)
  367.             {
  368.             case Hunt:
  369.               class'KOTA.KOTA'.default.bBotsHuntKing = Hunt.bChecked;
  370.               class'KOTA.KOTA'.static.StaticSaveConfig();
  371.               SaveConfig();
  372.               break;
  373.             case DoKingBonus:
  374.               class'KOTA.KOTA'.default.bKingBonus = DoKingBonus.bChecked;
  375.               class'KOTA.KOTA'.static.StaticSaveConfig();
  376.               SaveConfig();
  377.               break;
  378.             case DoKingKillerBonus:
  379.               class'KOTA.KOTA'.default.bKingKillerBonus = DoKingBonus.bChecked;
  380.               class'KOTA.KOTA'.static.StaticSaveConfig();
  381.               SaveConfig();
  382.               break;
  383.             case eKingBonus:
  384.               class'KOTA.KOTA'.default.KingBonus=int(eKingBonus.GetValue());
  385.               class'KOTA.KOTA'.static.StaticSaveConfig();
  386.               SaveConfig();
  387.               break;
  388.             case eKingKillerBonus:
  389.               class'KOTA.KOTA'.default.KingKillerBonus=int(eKingKillerBonus.GetValue());
  390.               SaveConfig();
  391.               class'KOTA.KOTA'.static.StaticSaveConfig();
  392.               break;    
  393.             }
  394.           break;
  395.     
  396.           if(E == DE_MouseMove)
  397.             {
  398.               if(UMenuRootWindow(Root) != None)
  399.             if(UMenuRootWindow(Root).StatusBar != None)
  400.               UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  401.             }
  402.           
  403.           if(E == DE_HelpChanged && C.MouseIsOver())
  404.             {
  405.               if(UMenuRootWindow(Root) != None)
  406.             if(UMenuRootWindow(Root).StatusBar != None)
  407.               UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  408.             }
  409.           
  410.           if(E == DE_MouseLeave)
  411.             {
  412.               if(UMenuRootWindow(Root) != None)
  413.             if(UMenuRootWindow(Root).StatusBar != None)
  414.               UMenuRootWindow(Root).StatusBar.SetHelp("");        
  415.             }
  416.     }
  417. }
  418. íM6 0U├í644
  419. ╛$$%Éû$,    6
  420. â$$ $ Öbå
  421.   Ñ$#┴⌠Ü:4,⌠w.åï*⌠w.åïô*.åïô6ªiéÜ:4,6░iw.åï*iw.åïô*.åïô6ª╛Ü:4,    ╛w.åï*╛w.åïô*.åïô
  422.    v class KOTA_PickupAwards extends UwindowPageWindow config(KOTA);
  423.  
  424. var UWindowComboControl PC[5];
  425. var int H_Offset;
  426.  
  427. function Created()
  428. {
  429.     local int i, j;
  430.  
  431.     Super.Created();
  432.     H_Offset = 10;
  433.     
  434.     
  435.     For (i = 0; i < 5; i++)
  436.     {    
  437.         j = i + 1;
  438.         PC[i] = UWindowComboControl( CreateControl( class'UWindowComboControl', 10, H_offset, 250, 1 ) );
  439.         pC[i].EditBoxWidth = 156;
  440.         pC[i].SetEditable( FALSE );
  441.         pC[i].SetText( "Pickup Award "$j$":");
  442.         pC[i].setvalue(class'KOTA.KOTA'.default.PickupClasses[i]);
  443.         pC[i].Align = TA_Left;
  444.         pC[i].AddItem("None", "");
  445.         pC[i].AddItem("Damage Amplifier", "Botpack.UDamage"); //doesn't work... fixed as of 1/28/00
  446.         pC[i].AddItem("Invisibility", "Botpack.UT_Invisibility"); //doesn't work... fixed same date
  447.         pC[i].AddItem("Jump Boots", "Botpack.UT_Jumpboots"); //doesn't work... ditto on the fix...
  448.         pC[i].AddItem("Body Armor", "Botpack.Armor2");
  449.         pC[i].AddItem("Thigh Pads", "BotPack.Thighpads");
  450.         pC[i].AddItem("Shield Belt", "BotPack.UT_ShieldBelt");
  451.         pC[i].AddItem("Big Keg O' Health", "BotPack.HealthPack");
  452.         H_Offset += 20;
  453.     }
  454. }
  455.         
  456. function Notify( UWindowDialogControl C, byte E )
  457. {
  458.     local int i;
  459.     
  460.     Super.Notify( C, E );
  461.     
  462.     switch(E)
  463.     {
  464.         case DE_Change:
  465.             for (i=0;i<6;i++)
  466.             {    
  467.                 switch(C)
  468.                 {
  469.                     case pc[i]:
  470.                         class'KOTA.KOTA'.default.PickupClasses[i]=pc[i].GetValue2();
  471.                         class'KOTA.KOTA'.static.StaticSaveConfig();
  472.  
  473.                         SaveConfig();
  474.                     break;
  475.                 }
  476.             }
  477.         break;
  478.       
  479.         if(E == DE_MouseMove)
  480.           {
  481.             if(UMenuRootWindow(Root) != None)
  482.               if(UMenuRootWindow(Root).StatusBar != None)
  483.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  484.           }
  485.         
  486.         if(E == DE_HelpChanged && C.MouseIsOver())
  487.           {
  488.             if(UMenuRootWindow(Root) != None)
  489.               if(UMenuRootWindow(Root).StatusBar != None)
  490.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  491.           }
  492.         
  493.         if(E == DE_MouseLeave)
  494.           {
  495.             if(UMenuRootWindow(Root) != None)
  496.               if(UMenuRootWindow(Root).StatusBar != None)
  497.             UMenuRootWindow(Root).StatusBar.SetHelp("");        
  498.           }
  499.     }
  500. }
  501. ÿΣ@S)í╦lw*Uäa/!a/!Ca╦%û,    ╥zBotPack.DoubleEnforcerBotPack.Enforcer··{ÑsÇr%Çû,    N{v{уw╖*╖  ñ
  502.  
  503. lñ.É É A ACÇ?ó$$Upon suicide, dethrone King? ^-⌐ -C.ç ç A≡ACÇ?Penalty Type:+%(╣pBó$None[CustomaHarsh\ `.æ æ AHBHC»»?,ó$ S 7','# of frags suicided king loses: d─╚A ír/ ,_├í/22
  504. ╛$/
  505. {znope -;' -<( -8(═zCustom -;( -<' -8( -;( -<( -8' ÖbÉ
  506. Q -C-⌐ ÖbÉ
  507. ì 7J ÖbÉ
  508.   ┴⌠Ü:2,⌠w.åï*⌠w.åïô*.åïô/ªiéÜ:2,/░iw.åï*iw.åïô*.åïô/ª╛Ü:2,    ╛w.åï*╛w.åïô*.åïô
  509.    qZsm
  510. JH-#╛┼Hw#*1#a/!J .Ü#·éw w ╔ ╔* ε* Θ* D!T* ╨╕ ╤═╠L? PZ11r  ╤@ ╨└?##╟ Ç┤kPG                  2w═yOƒ┤ëⁿ═╖╬;aG░╙╒╢mΩ┴o √=    ö<]&Setup King of the Arena:]geUse this to setup the Suicide and King scoring options, and choose what Pickups the king is awarded.A┼▄!ÿ▄T ë(r!* rwÅ!*.Åa!pw*═  -╠' K ▓$a#a/!)O.┐╓3q!L╡q!I±*╡ 5a!5═5  5-╠'┌wΩ!*5q!2 ñ
  511.     ªsñE,
  512. %qû,    MÆ&.ç ç A?EzCÇ?╣C(#ppWeapon Number SM:ó$  None*ImpactHammerBotPack.ImpactHammer"ChainsawBotPack.Chainsaw*TranslocatorBotPack.Translocator"EnforcerBotPack.Enforcer/Double EnforcerBotPack.DoubleEnforcer)GES BioRifleBotPack.UT_BioRifle,ASMD Shock RifleBotPack.ShockRifle7ASMD Super Shock RifleBotPack.SuperShockRifle#Pulse GunBotPack.PulseGunRipperBotPack.Ripper!MinigunBotPack.Minigun2*Flak CannonBotPack.UT_FlakCannon-Rocket LauncherBotPack.UT_Eightball)Sniper RifleBotPack.SniperRifle)RedeemerBotPack.WarHeadLauncheríE,Ñ ^'class KOTA_WeaponAwards extends UwindowPageWindow config(KOTA);
  513.  
  514. var UWindowComboControl WC[9];
  515. var int H_Offset;
  516.  
  517. function Created()
  518. {
  519.     local int i, j;
  520.  
  521.     Super.Created();
  522.     H_Offset = 10;
  523.     
  524.     For (i = 0; i < 9; i++)
  525.     {    
  526.         j = i + 1;
  527.         WC[i] = UWindowComboControl( CreateControl( class'UWindowComboControl', 10, H_offset, 250, 1 ) );
  528.         WC[i].EditBoxWidth = 156;
  529.         WC[i].SetEditable( FALSE );
  530.         WC[i].SetText( "Weapon Award "$j$":");
  531.         WC[i].setvalue(class'KOTA.KOTA'.default.WeaponClasses[i]);
  532.         WC[i].Align = TA_Left;
  533.         WC[i].AddItem("None", "");
  534.         WC[i].AddItem("ImpactHammer", "BotPack.ImpactHammer");
  535.         WC[i].AddItem("Chainsaw", "BotPack.Chainsaw");
  536.         WC[i].AddItem("Translocator", "BotPack.Translocator");
  537.         WC[i].AddItem("Enforcer", "BotPack.Enforcer");
  538.         WC[i].AddItem("Double Enforcer", "BotPack.DoubleEnforcer");
  539.         WC[i].AddItem("GES BioRifle", "BotPack.UT_BioRifle");
  540.         WC[i].AddItem("ASMD Shock Rifle", "BotPack.ShockRifle");
  541.         WC[i].AddItem("ASMD Super Shock Rifle", "BotPack.SuperShockRifle");
  542.         WC[i].AddItem("Pulse Gun", "BotPack.PulseGun");
  543.         WC[i].AddItem("Ripper", "BotPack.Ripper");
  544.         WC[i].AddItem("Minigun", "BotPack.Minigun2");
  545.         WC[i].AddItem("Flak Cannon", "BotPack.UT_FlakCannon");
  546.         WC[i].AddItem("Rocket Launcher", "BotPack.UT_Eightball");
  547.         //WC[i].AddItem("Cueball", "KOTA.CueBall");
  548.         //WC[i].AddItem("PsYcHoBaLL", "KOTA.AsylumCueBall");
  549.         WC[i].AddItem("Sniper Rifle", "BotPack.SniperRifle");
  550.         WC[i].AddItem("Redeemer", "BotPack.WarHeadLauncher");
  551.         H_Offset += 20;
  552.     }    
  553. }
  554.         
  555. function Notify( UWindowDialogControl C, byte E )
  556. {
  557.     local int i;
  558.     
  559.     Super.Notify( C, E );
  560.     
  561.     switch(E)
  562.     {
  563.         case DE_Change:
  564.             for (i=0;i<9;i++)
  565.                 switch(C)
  566.                 {
  567.                     case wc[i]:
  568.                         class'KOTA.KOTA'.default.WeaponClasses[i]=wc[i].GetValue2();
  569.                         class'KOTA.KOTA'.static.StaticSaveConfig();
  570.                         SaveConfig();
  571.                     break;
  572.                 }
  573.         break;
  574.     
  575.         if(E == DE_MouseMove)
  576.           {
  577.             if(UMenuRootWindow(Root) != None)
  578.               if(UMenuRootWindow(Root).StatusBar != None)
  579.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  580.           }
  581.         
  582.         if(E == DE_HelpChanged && C.MouseIsOver())
  583.           {
  584.             if(UMenuRootWindow(Root) != None)
  585.               if(UMenuRootWindow(Root).StatusBar != None)
  586.             UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText);        
  587.           }
  588.         
  589.         if(E == DE_MouseLeave)
  590.           {
  591.             if(UMenuRootWindow(Root) != None)
  592.               if(UMenuRootWindow(Root).StatusBar != None)
  593.             UMenuRootWindow(Root).StatusBar.SetHelp("");        
  594.           }
  595.     }    
  596. }
  597.  
  598. ╧'P@╧╘Configuring King Of The Arena╪ _-▀' íy1 .X╖í1++
  599. ▓$1
  600. d%% % Öbä
  601. Ñ&& & Öbä
  602. Θ,, , Öbä
  603. -,, , Öbä
  604. q,, , Öbä
  605. ╡,, , Öbä
  606. ∙,, , Öbä
  607. =,, , Öbä
  608. ü,, , Öbä
  609.   ╡ΦÜ:+,Φw.åï*Φw.åïô*.åïô1ª]éÜ:+,1░]w.åï*]w.åïô*.åïô1ª▓Ü:+,    ▓w.åï*▓w.åïô*.åïô
  610.    ┌~u!0p- ╚F%&┘/-( %╚--*u!! Γ}?8°²I$Ha/!Hü-HBotPack.HealthVial(╨éééa/!$üa/!@üa/!Aüa/!"╨ü-JBotPack.HealthVial(±a/!"±ü-S(I$' πtô=▒╡-∞(-(&╛┼Åw&*xz&¢ú&-'Å&&╟6ü-é-╞wüa/!B-'¢ú-* &Np¢ú is the King of the Arena! Regicide Time!!N'Ö->╕¢▒?(▓=, ╜$║$│$╢$╝=, ╗$E %û ,    M{  u{  Ñ °ééz¢úw-╞¢ú-* &Rp¢ú is the new King of the Arena! Regicide Time!!R'ï->╕¢▒?(▓=, ╜$║$│$╢$╝=, ╗$ %qû ,    ?{  g{  Ñ  ▓$╜$║$│$╢$╝=, ╗$#éérz¢ú-C-( %!-8:ppp¢ú couldn't take the pressure, suicided, and lost all but S( frags! BWAHAHAHA! First one to frag someone becomes the King!9D»¢▒?(k╠-<9ô7&:ppp¢ú pulled a fast one and suicided. Wrong answer! Minus S7 frags. Make like a King-To-Be and get a frag!!kk-;9    :p¢ú found the life of a peasant more pleasant and suicided. Tsk, Tsk! Next player to get a frag becomes King.:'╣¢▒?9▓$╜$║$│$╢$╝=, ╗$#ïéz¢ú-@`wí &ïù ,╕¢▒??»w╖*╖ ñ    
  611.  
  612. ñ╕ñD,
  613. %╢û,QÆ&    .ç ç A?DzCÇ?    ╣C    (    "ppPickup Award SQ:          ó$    None    )Damage AmplifierBotpack.UDamage    -InvisibilityBotpack.UT_Invisibility    (Jump BootsBotpack.UT_Jumpboots    "Body ArmorBotpack.Armor2    %Thigh PadsBotPack.Thighpads    *Shield BeltBotPack.UT_ShieldBelt    -Big Keg O' HealthBotPack.HealthPackíD,Ñ Añclass kota extends mutator
  614. config(KOTA);
  615.  
  616. //Mutator Vars
  617. var bool bKing, Initialized, WeaponsReplaced, AmmoRemoved ,  ItemsReplaced;
  618. var string KingName, FirstKingMessage, NewKingMessage, KingSuicide;
  619. var int suicidepenalty, kills;
  620. var pawn King;
  621.  
  622. //configable vars
  623. var() config  bool bKingBonus, bHarshPenalty, bCustomPenalty, bKingSuicideReset, bKingKillerBonus, bNoPenalty, bBotsHuntKing;
  624. var() config  string WeaponClasses[9], DefaultWeapons[9], PickupClasses[9];
  625. var() config  int kingkillerbonus, kingbonus, custompenalty;
  626.  
  627. function BroadcastKingMessage(coerce string Msg, bool bBeep )
  628. {
  629.     local Pawn P;
  630.     if ( Level.Game.AllowsBroadcast(self, Len(Msg)) )
  631.     for( P=Level.PawnList; P!=None; P=P.nextPawn )
  632.         if( P.bIsPlayer )
  633.             P.ClientMessage( Msg, 'Pickup');
  634. }
  635.  
  636. event PreBeginPlay()
  637. {
  638.     if (Initialized)
  639.     {
  640.         WeaponsReplaced = True;
  641.         ItemsReplaced = True;
  642.         AmmoRemoved = True;
  643.         return;
  644.     }
  645.     Initialized = True;
  646. }
  647.  
  648. function PostBeginPlay()
  649. {
  650.     bKing = false;
  651.     KingName = "";
  652.     Kills = 0;
  653.     Super.PostBeginPlay();
  654.     If(bBotsHuntKing)
  655.         enable('tick');
  656. }
  657.  
  658. function tick(float deltatime)
  659. {
  660.     if(bKing)
  661.         HuntKing(King);
  662. }
  663.  
  664. function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
  665. {    
  666.     local inventory inv;
  667.     
  668.     bSuperRelevant = 0;    
  669.     
  670.     if( Other.IsA('weapon'))
  671.       if(!WeaponsReplaced)
  672.       {
  673.         ReplaceWith( Other, "BotPack.HealthVial" );
  674.         return false;
  675.       }
  676.     if (other.IsA('Pickup') && !Other.IsA('HealthVial') && !Other.IsA('MedBox') && !Other.IsA('Ammo'))
  677.     {    
  678.       if(!ItemsReplaced)
  679.       {
  680.         ReplaceWith( Other, "BotPack.HealthVial" );
  681.         return false;
  682.       }
  683.     }
  684.     If(other.IsA('ammo'))
  685.       if(!AmmoRemoved)
  686.         return false;
  687.     bSuperRelevant = 0;    
  688.     return TRUE;
  689. }
  690.  
  691. function ModifyPlayer( pawn other )
  692. {
  693.     local int i;
  694.     local inventory inv;
  695.     for (Inv = Other.Inventory; Inv != None; Inv = Inv.Inventory )
  696.         if (  Inv.isa('weapon')|| Inv.isa('translocator') )
  697.              Inv.Destroy();
  698.     for ( i = 0; i < 9; i++ )
  699.     {    
  700.         if ( DefaultWeapons[i] == "BotPack.DoubleEnforcer" )
  701.         {    
  702.             GiveItemTo( other, "BotPack.Enforcer" );
  703.             GiveDoubleEnforcers(other);
  704.         }
  705.         else if ( defaultweapons[i] != "" )
  706.             GiveItemTo( other, defaultweapons[i]);
  707.     }    
  708.     if(other==king)//for those who aren't dethroned on suicides
  709.       {
  710.         for ( i = 0; i < 9; i++ )
  711.                 {    
  712.                     if ( WeaponClasses[i] != "" )
  713.                         GiveItemTo( other, WeaponClasses[i] );
  714.                     if ( PickupClasses[i] != "" )
  715.                         GiveItemTo( other, PickupClasses[i] );
  716.                 }
  717.       }
  718.     if ( NextMutator != None )
  719.         NextMutator.ModifyPlayer(other);
  720. }
  721.  
  722. function HuntKing(pawn Hunted)
  723. {
  724.     local bot hunter;
  725.     local pawn moron;
  726.  
  727.     if(bKing)
  728.         for(moron=level.pawnlist;moron!=none;moron=moron.Nextpawn)
  729.             if(moron.isa('Bot'))
  730.             {
  731.                 hunter = bot(moron);    
  732.                 if((hunter != king) && (hunter.enemy != King))
  733.                 {    
  734.                   /*if(hunter.enemy != none)
  735.                         log(moron.playerreplicationinfo.playername$"'s enemy was changed from "$hunter.Enemy.playerreplicationinfo.playername$" to "$hunted.playerreplicationinfo.playername);
  736.                     else
  737.                     log(moron.playerreplicationinfo.playername$"'s enemy was set to "$hunted.playerreplicationinfo.playername);*/
  738.                   hunter.Enemy = None;
  739.                   hunter.SupportingPlayer = None;
  740.                   hunter.OrderObject = None;
  741.                   hunter.SetOrders('Attack', None);
  742.                   hunter.CampingRate = 0;
  743.                   hunter.Aggressiveness += 0.8;
  744.                   hunter.SetEnemy(Hunted);
  745.                 }
  746.                 else if(hunter==king)
  747.                 {
  748.                   hunter.aggressiveness=2.0;
  749.                   hunter.campingrate=1.5;
  750.                 }
  751.             }
  752. }
  753.  
  754. function ScoreKill(pawn killer, pawn Other)
  755. {
  756.     local int i;
  757.     local pawn cp;
  758.     
  759.     other.Weapon.bCanThrow = False; //don't drop weapons
  760.     
  761.     bKing = false;
  762.     for( CP=Level.PawnList; CP!=None; CP=CP.nextPawn )
  763.         if( CP.PlayerReplicationInfo.PlayerName == KingName ) 
  764.         {
  765.             King = CP;
  766.             bKing = true;
  767.             break;
  768.         }
  769.  
  770.     if ( !bKing )
  771.         if ( Killer.bIsPlayer && (Killer != Other) )
  772.             if (!Self.IsA('TrainingDM'))
  773.             {
  774.                 bKing = True;
  775.                 KingName = Killer.PlayerReplicationInfo.PlayerName;
  776.                 King = Killer;
  777.                 If(bBotsHuntKing)
  778.                     HuntKing(killer);
  779.                 Kills = 1; //firstblood (bools would've worked but this is more fun)
  780.                 FirstKingMessage = Killer.playerreplicationinfo.playername$ " is the King of the Arena! Regicide Time!!";
  781.                 BroadcastKingMessage( firstkingmessage, true );
  782.                 // Give the lucky(?) killer his bonus :)
  783.                 If(bKingKillerBonus)
  784.                     Killer.PlayerReplicationInfo.Score += KingKillerBonus;
  785.                     
  786.         
  787.                 // Mark the killer as the new King, let the battle begin.
  788.                 Killer.AmbientGlow = 255; 
  789.                 Killer.LightEffect=LE_NonIncidence;
  790.                 Killer.LightType=LT_Strobe;
  791.                 Killer.LightRadius=20;
  792.                 Killer.LightSaturation=0;
  793.                 Killer.LightBrightness=255;
  794.                 Killer.LightHue = 69;
  795.                 for ( i = 0; i < 9; i++ )
  796.                 {    
  797.                     if ( WeaponClasses[i] != "" )
  798.                         GiveItemTo( killer, WeaponClasses[i] );
  799.                     if ( PickupClasses[i] != "" )
  800.                         GiveItemTo( Killer, PickupClasses[i] );
  801.                 }
  802.             }
  803.     If ((other.PlayerReplicationInfo.PlayerName == KingName) && (Killer != Other) && Killer.bIsPlayer )
  804.     {
  805.         KingName = Killer.PlayerReplicationInfo.PlayerName;
  806.         King = Killer;
  807.         If(bBotsHuntKing)
  808.             HuntKing(killer);
  809.         Kills = 1; //sets victim to old king
  810.         NewKingMessage = Killer.playerreplicationinfo.playername$ " is the new King of the Arena! Regicide Time!!";
  811.         BroadcastKingMessage( newkingmessage, true );
  812.         If(bKingKillerBonus)
  813.             Killer.PlayerReplicationInfo.Score += KingKillerBonus;
  814.         Killer.AmbientGlow = 255; 
  815.         Killer.LightEffect=LE_NonIncidence;
  816.         Killer.LightType=LT_Strobe;
  817.         Killer.LightRadius=20;
  818.         Killer.LightSaturation=0;
  819.         Killer.LightBrightness=255;
  820.         Killer.LightHue = 0;
  821.         for ( i = 0; i < 9; i++ )
  822.             {    
  823.                 if ( WeaponClasses[i] != "" )
  824.                     GiveItemTo( killer, WeaponClasses[i] );
  825.                 if ( PickupClasses[i] != "" )
  826.                     GiveItemTo( Killer, PickupClasses[i] );
  827.             }
  828.         // Victim no longer is the King
  829.         Other.AmbientGlow = 0; 
  830.         Other.LightEffect=LE_None;
  831.         Other.LightType=LT_Strobe;
  832.         Other.LightRadius=0;
  833.         Other.LightSaturation=0;
  834.         Other.LightBrightness=255;
  835.         Other.LightHue = 0;    
  836.         Other.SetDefaultDisplayProperties();
  837.     }
  838.     
  839.     If ( other == killer && (other.PlayerReplicationInfo.PlayerName == KingName) && bKingSuicideReset )
  840.     {    
  841.         KingName = "";
  842.         bKing = false;
  843.         kills = 0; //self is victim
  844.         //Teehehe, if suicide, only 3 frags are left for suicider
  845.         if (bHarshPenalty)
  846.         {
  847.             KingSuicide = other.playerreplicationinfo.playername$ " couldn't take the pressure, suicided, and lost all but " $kingkillerbonus$ " frags! BWAHAHAHA! First one to frag someone becomes the King!";
  848.             SuicidePenalty = other.playerreplicationinfo.score - KingKillerBonus;
  849.         }
  850.         
  851.         else if (bCustomPenalty)
  852.         {        
  853.             SuicidePenalty = CustomPenalty -1;
  854.             KingSuicide = other.playerreplicationinfo.playername$ " pulled a fast one and suicided. Wrong answer! Minus " $CustomPenalty$ " frags. Make like a King-To-Be and get a frag!!";
  855.         }
  856.         
  857.         else if (bNoPenalty)
  858.         {
  859.             SuicidePenalty = -1;
  860.             KingSuicide = other.playerreplicationinfo.playername$ " found the life of a peasant more pleasant and suicided. Tsk, Tsk! Next player to get a frag becomes King.";
  861.         }
  862.         
  863.         BroadcastKingMessage( KingSuicide, true );
  864.         Other.PlayerReplicationInfo.Score -= SuicidePenalty;
  865.         Other.AmbientGlow = 0; 
  866.         Other.LightEffect=LE_None;
  867.         Other.LightType=LT_Strobe;
  868.         Other.LightRadius=0;
  869.         Other.LightSaturation=0;
  870.         Other.LightBrightness=255;
  871.         Other.LightHue = 0;
  872.         Other.SetDefaultDisplayProperties();
  873.     }
  874.     
  875.     if ( killer.PlayerReplicationInfo.PlayerName == KingName && bKingBonus)
  876.     {    
  877.         if (killer != other)
  878.             kills += 1; //victim is non-King pawn (bools would've worked but this is more fun)
  879.         If (kills > 2)//gives appropriate bonus for appropriate victim
  880.             killer.PlayerReplicationInfo.score += KingBonus;
  881.     }
  882.     if ( NextMutator != None )
  883.         NextMutator.ScoreKill(killer, other);
  884. }
  885.  
  886.  
  887. function GiveItemTo( pawn Other, string aClassName )
  888. {
  889.     local class<Inventory> ItemClass;
  890.     local Inventory Item;
  891.     local Weapon    WeaponItem;
  892.  
  893.     ItemClass = class<Inventory>( DynamicLoadObject( aClassName, class'Class' ) );
  894.  
  895.     // //taken out(If already owned, or) class not found, return.
  896.     if ( ItemClass == None )
  897.             return;
  898.  
  899.     // Procedure for weapons.
  900.     if ( class<Weapon>( ItemClass ) != None )
  901.     {
  902.         WeaponItem = Weapon( Spawn( ItemClass, Self ) );
  903.         if ( WeaponItem != None )
  904.         {
  905.             WeaponItem.RespawnTime = 0.0;
  906.             WeaponItem.GiveTo( Other );
  907.             WeaponItem.bHeldItem = TRUE;
  908.             GiveAmmo( WeaponItem, Other );
  909.             WeaponItem.SetSwitchPriority( Other );
  910.             WeaponItem.WeaponSet( Other );
  911.             WeaponItem.AmbientGlow = 0;
  912.             WeaponItem.SetOwner( Other );
  913.             if ( Other.IsA( 'PlayerPawn' ) )
  914.                 WeaponItem.SetHand( PlayerPawn( Other ).Handedness );
  915.             else
  916.                 WeaponItem.GotoState( 'Idle' );
  917.             Other.Weapon.GotoState( 'DownWeapon' );
  918.             Other.PendingWeapon = None;
  919.             Other.Weapon = WeaponItem;
  920.         }
  921.         return;
  922.     }
  923.  
  924.     Item = Spawn( ItemClass, Self );
  925.  
  926.     Item.RespawnTime = 0.0;
  927.     Item.GiveTo( Other );
  928.     Item.bHeldItem = TRUE;
  929.     If( class<Pickup>( ItemClass ) != None )
  930.         Item.GoToState('Activated');
  931. }
  932.  
  933. Function GiveDoubleEnforcers(pawn other)
  934. {
  935.     local Enforcer Enforcer1, Enforcer2;
  936.     local Inventory Item;
  937.  
  938.     Item = Other.FindInventoryType(class'Enforcer');
  939.     if (Enforcer(Item) != none)
  940.     {
  941.         Enforcer1 = Enforcer(Item);
  942.         Enforcer2 = Spawn(class'DoubleEnforcer', Other);
  943.         Enforcer2.BecomeItem();
  944.         Enforcer1.ItemName = Enforcer1.DoubleName;
  945.         Enforcer1.SlaveEnforcer = Enforcer2;
  946.         Enforcer1.SetTwoHands();
  947.         Enforcer1.AIRating = 0.4;
  948.         Enforcer1.SlaveEnforcer.SetUpSlave( Other.Weapon == Enforcer1 );
  949.         Enforcer1.SlaveEnforcer.SetDisplayProperties(Enforcer1.Style, Enforcer1.Texture, Enforcer1.bUnlit, Enforcer1.bMeshEnviromap);
  950.         Enforcer1.SetTwoHands();
  951.         Enforcer1.WeaponSet(Other);
  952.     }
  953. }
  954.  
  955. function GiveAmmo( weapon WeaponItem, Pawn Other )
  956. {
  957.     if ( WeaponItem.AmmoName == None )
  958.         return;
  959.     WeaponItem.AmmoType = Ammo(Other.FindInventoryType(WeaponItem.AmmoName));
  960.     if ( WeaponItem.AmmoType != None )
  961.         return;
  962.     else
  963.     {
  964.         WeaponItem.AmmoType = Spawn(WeaponItem.AmmoName, Self);    // Create ammo type required
  965.         Other.AddInventory(WeaponItem.AmmoType);        // and add to player's inventory
  966.         WeaponItem.AmmoType.BecomeItem();
  967.         WeaponItem.AmmoType.AmmoAmount = WeaponItem.AmmoType.MaxAmmo;
  968.         WeaponItem.AmmoType.GotoState('Idle2');
  969.     }
  970. }
  971.  
  972.  
  973. Tclass KOTAConfigWindow expands UWindowFramedWindow;
  974.  
  975. function BeginPlay()
  976. {
  977. Super.BeginPlay();
  978. //Set the title of the Framed Window
  979. WindowTitle = "Configuring King Of The Arena";
  980.  
  981. //The class of the content
  982. ClientClass = class'KOTA.KOTACW';
  983. //Make the Framed Window resizable
  984. bSizable = true;
  985. }
  986.  
  987. function Created()
  988. {
  989.     Super.Created();
  990.     SetSize(300, 370);
  991.     WinLeft = (Root.WinWidth - WinWidth) / 2;
  992.     WinTop = (Root.WinHeight - WinHeight) / 2;
  993. }
  994.  
  995. íB0 '£├í0..
  996. ╛$)%Éû),0
  997. â)    ) )     Öbå
  998.   Ñ)#┴⌠Ü:.,⌠w.åï*⌠w.åïô*.åïô0ªiéÜ:.,0░iw.åï*iw.åïô*.åïô0ª╛Ü:.,    ╛w.åï*╛w.åïô*.åïô
  999.    σI&0-#-G-H'-J'-S' -G' 'ÇJY'r┬* ¿.¡K┬`w¿* ■¿a┬KE¿¿¿▐¿┘¿q!Q Psåä╛█F}P'╛┼äw'*m'-╞'(P!$''╟7 x=Fv$TB=  ûRw.ûB*
  1000. .ûBFa ≡=F
  1001. τ
  1002. ∩
  1003. ├F
  1004. 
  1005. α═╠╠>
  1006. ├>r=╡
  1007. 
  1008. ├@U
  1009. µ
  1010. ß
  1011. -▌
  1012. -╒
  1013. 
  1014. = ñ%
  1015. ô4ñ%.½└ ½ûC¢C%!King Scoring Options c%$Suicide Scoring Options b%Weapon Awards ]%Pickup Awards U%Default Weapons YL.╕└ ╕zCÑC@BÇALClose íKW 0íWX ñ
  1016.  
  1017. ñrñA,
  1018. %pû,    OÆ&.ç ç A?AzCÇ?╣C("ppWeapon Award SO:  ó$None*ImpactHammerBotPack.ImpactHammer"ChainsawBotPack.Chainsaw*TranslocatorBotPack.Translocator"EnforcerBotPack.Enforcer/Double EnforcerBotPack.DoubleEnforcer)GES BioRifleBotPack.UT_BioRifle,ASMD Shock RifleBotPack.ShockRifle7ASMD Super Shock RifleBotPack.SuperShockRifle#Pulse GunBotPack.PulseGunRipperBotPack.Ripper!MinigunBotPack.Minigun2*Flak CannonBotPack.UT_FlakCannon-Rocket LauncherBotPack.UT_Eightball)Sniper RifleBotPack.SniperRifle)RedeemerBotPack.WarHeadLauncheríA,Ñ Kclass KOTACW expands UWindowDialogClientWindow;
  1019.  
  1020. var UWindowPageControl KOTA;
  1021. var UWindowSmallCloseButton CancelButton;
  1022. function created()
  1023. {
  1024. super.created();
  1025. KOTA = UWindowPageControl( CreateWindow(class'UWindowPageControl', 0, 0, 300, 310));
  1026. KOTA.AddPage("King Scoring Options", class'KOTA.KOTA_KingScoreOptions');
  1027. KOTA.AddPage("Suicide Scoring Options", class'KOTA.KOTA_SuicideScoreOptions');
  1028. KOTA.AddPage("Weapon Awards", class'KOTA.KOTA_WeaponAwards');
  1029. KOTA.AddPage("Pickup Awards", class'KOTA.KOTA_PickupAwards');
  1030. KOTA.AddPage("Default Weapons", class'KOTA.KOTA_DefaultWeapons');
  1031. CancelButton = UWindowSmallCloseButton(CreateWindow(class'UWindowSmallCloseButton', 250, 330, 48, 16));
  1032. CancelButton.SetText( "Close" );
  1033. }
  1034.  
  1035. function Notify(UWindowDialogControl C, byte E)
  1036. {
  1037.     local int sval; 
  1038.  
  1039.     Super.Notify( C, E );
  1040. }
  1041. ⌡;L<÷╫ï└ V A AC╚B l    l*ll=j■   fjⁿ   mj    dj    aj²   jj■   ct°   el\j    bj²   tj■   j    `j    wj■   Gt·   qj²   oj²   zj⌠   Uj²   Xj■   z∞   ^j⌠   Jt√   Gjⁿ   nj²   |j    uj²   Uj■   HzΓ    Z≤   x|ε   `z°   
  1042. j    x|≤   }j²   Nt±   QU≡   hj■   Mj    lj    rj■   "j²   ZT°   uz°   pTε   CZ÷   jZ÷   jjⁿ   ot√   Z÷   ttα   Ij    vT∙   vZ÷   kZ÷   HZ÷   VZ÷   kt÷   wj■   )z°   Wj    s_±   PtΩ   iT∩   vt╓   GU√   lt√   Ez÷   %t√   Bz╘   
  1043. t÷   UΦ   MTΦ   cj    yz°   'Tµ   YTµ   XT°   dj    ]|╘   qU÷   AT┴   zt▓   W_╘   KX╙   Sz÷   !t╓   Dz∞   [U÷   {X╙   RU╘   |T±   yt÷   ~zα   ?zα   zα   zα   &Z÷   X|Φ   Jj■   @tµ   Zj■   $T°   gU±   {z°   ^tµ   h|Ω   ej⌠   Tt√   Oj²   Tj²   _T°   nz╠   ;t╠   ráSK=ÄYm^UÄüRlUÄüQyUùyiFVùìiSVÄ]]`VùéinVÄUn{VÄè[IWùüi WWÄtWcWÄxYpW¥O }WÄbdIXùqi VXÄxQbXÄêYpXÄbf~XÄcbLYÄccYYƒ}fY¥N sY¥AYÄ[LZÄqQZZÄÇQgZ¥P uZÄbeA[Äc_N[ÄqL[[ùF h[≤xZt[ÄcaB\ÄtfO\ùni \\Ä_h\Äügv\ÄëVC]ù. P]ùài \]ƒ3 h]«|at]«iaB^ÄimP^«àa]^Äsmj^Äàmw^Ä|mD_«saQ_Äc`__«nal_Äx_y_ÄnmF`ù/ S`ƒN _`ùE k`¥D w`ƒL CaƒIOaÄèQ\aƒ0 iaù- uaƒM Abù]^ MbÄè_Ybƒ1 fbùU^ rbùY^ ~bÄè\JcƒpXcƒ~ec«ÇJrcƒ@ @dÄêQLdÄ_\Ydùyb fd¥Brdùìb d¥ëYKeùéb Xe¥C deƒpe¥xS }eÑ6xIf¼5lAlÄîmmm«îa{mÑ4i InÄtVrz¥bgz¥biL{ÑHAY{¥bSZé₧9Ngé¥b,uä¥bhBàÑ7@OàÑ8}
  1044. Oô¥bR L₧ƒÇkX₧òñc
  1045. Z    e₧ùis ººb]4x6K¿òíc |C▀ò╩V
  1046. [σºw]4lZτºY]4J<FΩºc]4F6Pªòí] {V▄ºU]4A!QßÄÇLRéòΣo_éòñb
  1047. MNçòíb n[Äò|Iû≥}K EÜùss QÜ┤G]ÜòI\₧òñY
  1048. ^eúº]]4i'C▓ò╧V'Pl┘òíY Y
  1049. |┌ò┌!)Uσò╚%9~σù|i wµòΓ?`CτòπxcΩòñU
  1050. k[âº]4MñFîºV]4_S░òíU {r╖òσ&>m╝ƒëF k╜òFw╜òt}└òsq┬òñ_
  1051. Hd╞òí_ &l╩òñ]
  1052. ]R╦º_]4Vo┘ùîs Eτò⌡w;KQτ[Public]
  1053. Object=(Name=KOTA.KOTA,Class=Class,MetaClass=Engine.Mutator,Description="KingOfTheArena, The drawer of first blood is awarded a GOOD weapon, and everyone else tries to Kill him. DIE DIE DIE!!!!!!")
  1054. Object=(Name=KOTA.KOTAModMenuItem,Class=Class, MetaClass=UMenu.UMenuModMenuItem)
  1055. King Of The Arena v155 ReadMe-----------------------------------------------------------------------
  1056.  
  1057. - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- 
  1058.  ----------------------------------------------------------------------------------------------------Unzip it to your UT folder with use folder names checked. Unless u have the umod version, in which case just run the file...
  1059. ----------------------------------------------------------------------------------------------------
  1060. Version History
  1061. -12/23/99. v50 beta. added base KOTA code.
  1062. ..
  1063. -12/25/99. v75 fully functional. Removed pickup weapons, fixed NewKing messages, implemented new scoring features...
  1064. ..
  1065. -12/30/99. v100 fixed network play and added Mod menu support.
  1066. ..
  1067. -1/28/00. v150 fixed the pickup awards code, simplified the weapon award code.
  1068. ..
  1069. --1/29/00. v155 fixed a small bug.
  1070. ----------------------------------------------------------------------------------------------------
  1071. Version Details:
  1072. v50 :The player that draws first blood is declared King and given a good weapon. The other players have to track him down and kill him. When the king is killed, his assassinator is declared the new king, given the good weapon, and given a +3 frag bonus. Bug Report: KingName does not register, weapons to pickup are still in the game....... v75  : new scoring aspects include: 4 frags for becoming the king, king gets 2 frags rather than 1 for killing someone, if king suicides, he/she (??) loses all but 3 frags. BWAHAHAHAH!!! King is awarded a RocketLauncher, a redeemer, and a sniper rifle along with Thigh pads and body armor. Everyone else gets Chainsaw, minigun, translocator, ImpactHammer, and double enforcers...------v100 : made all the score and weapon stuff customizable. Also fixed a bug with network play that would cause the game to be left Kingless when the king left. Now you can pick any weapons and setup any score options you want!-v150: fixed the pickup awards code, simplified the weapon award code.-v155 fixed a small bug that caused non-dethrone on suicide kings to not get their weapon awards back on respawn.
  1073. ----------------------------------------------------------------------------------------------------
  1074. Special Thanx to:
  1075. JbP, Xplo, Ob1-Kenobi (ob1@planetunreal.com)--
  1076.     -UTRA, Hunting , and DoubleEnforcerArena mutators.
  1077. Necron_99, bane, SiliconVortex, otherz from Mutator forum--
  1078.     -Scripting support
  1079. Epic Megagames and GT Interactive
  1080.     -Making such a cool game
  1081. ----------------------------------------------------------------------------------------------------
  1082. Plans for things to come
  1083.  
  1084. v200. final release: Add a hud displaying the king messages and such...
  1085. ----------------------------------------------------------------------------------------------------
  1086. -other Mutators by me-
  1087. QuadMod
  1088. UTPool
  1089. SizeDoesMatter
  1090. HeadShot Arena
  1091. Frenzy
  1092. Dodger
  1093. Snipe
  1094. ----------------------------------------------------------------------------------------------------
  1095. Later All
  1096.  
  1097.  
  1098. {KiX}ProfessorGib
  1099. comments, questions, suggestions, ideas, hate mail, bug fixes, or whatever the hell else u can think of to send to me: ian69@home.net  (no viruses or bombs please ;P   )
  1100. ...check out my webpage: http://www.planetunreal.com/thelaboratory/
  1101. 1/29/00BMq6(TRΦltt@Ç  @ Ç   @@@Ç@ @`@`Ç` `Ç@ÇÇÇ Çá@áÇá á└@└Ç└ └ @ Ç    @ Ç     @  Ç     @ @@ Ç@  @ ` @` Ç`  ` Ç @Ç ÇÇ  Ç á @á Çá  á └ @└ Ç└  └   @  Ç     @@@Ç@ @ @@ @Ç @  @@@@@@Ç@@ @@`@@`@Ç`@ `@Ç@@Ç@ÇÇ@ Ç@á@@á@Çá@ á@└@@└@Ç└@ └@ @@ @Ç @  @`@`Ç` ` `@ `Ç `  `@`@@`Ç@` @```@``Ç`` ``Ç`@Ç`ÇÇ` Ç`á`@á`Çá` á`└`@└`Ç└` └` `@ `Ç `  `Ç@ÇÇÇ Ç Ç@ ÇÇ Ç  Ç@Ç@@ÇÇ@Ç @Ç`Ç@`ÇÇ`Ç `ÇÇÇ@ÇÇÇÇÇ ÇÇáÇ@áÇÇáÇ áÇ└Ç@└ÇÇ└Ç └Ç Ç@ ÇÇ Ç  Çá@áÇá á á@ áÇ á  á@á@@áÇ@á @á`á@`áÇ`á `áÇá@ÇáÇÇá Çááá@ááÇáá áá└á@└áÇ└á └á á@ áÇ á  á└@└Ç└ └ └@ └Ç └  └@└@@└Ç@└ @└`└@`└Ç`└ `└Ç└@Ç└ÇÇ└ Ç└á└@á└Çá└ á└└└@└└Ç└└ └└ └@ └Ç └  └ @ Ç     @  Ç     @ @@ Ç@  @ ` @` Ç`  ` Ç @Ç ÇÇ  Ç á @á Çá  á └ @└ Ç└  └   @  Ç     ααααααααJααααααααααα))%%%*αααααααα)))))*ααααααααααααααααααααααααααααααααααααααααααααααααααααα)*)))*ααααααααααααααααααααααααααααααααααααααααααααααααααααα)*)))*ααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα))))))αααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα)%))))ααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα)%%%%)ααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα)))))Jααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα)%)))*ααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα%%)))Iαααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα)))))Iαααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα))))))ααααααααααααααααααααααααααααααααααααααααααααααααααα▀r)))Jαααααααααααααααααααααααααααααααααααα█NIII)αααααααααααα))%%%*%%%%%))))nnn)III)))))))))))))))II)II))))))))JJ))))))))III))))))))))))))N%))JJJJJJ))))JJJJNN)IIIN)))))))))))))JJ))%%N)JJ%JJ)NNNI))))))J)NN%%)))))IIIJIIIIIINNN%%%%%%%%%))))%%%%%II%%%%%%%%%%%%%%%%%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%)JJ████  ▀▀▀▀▀▀▀▀   ▀▀▀▀▀ûûÆ██▀▀▀▀ ▀▀▀▀▀▀   █ÆÆÆ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀rIrr███   ▀  ▀▀▀▀▀██rÆÆÆ╗▀▀▀▀▀▀▀▀▀▀▀▀▀ûûNNJJ▀▀▀▀J))N███▀ÆÆIIII╗▀▀▀nnÆ██▀▀  ▀▀▀▀ ▀▀ ███n))%%%%%%)%%%%%%%%)██    %%%%%%nn█           ██╢╢II%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$%%%%%%%%%%%%)JJ████  ▀▀▀▀▀▀▀▀   ▀▀▀▀▀ûûÆ██▀▀▀▀ ▀▀▀▀▀▀   █ÆÆÆ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀rIrr███   ▀  ▀▀▀▀▀██rÆÆÆ╗▀▀▀▀▀▀▀▀▀▀▀▀▀ûûNNJJ▀▀▀▀J))N███▀ÆÆIIII╗▀▀▀nnÆ██▀▀  ▀▀▀▀ ▀▀ ███n))%%%%%%)%%%%%%%%)██    %%%%%%nn█           ██╢╢II%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$%%%%%%%%%%%%)))          ▀▀▀▀▀▀   ▀▀▀▀▀█▀▀  ▀▀▀▀▀▀  ▀   ▀rr╢  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀nI╢╢   ▀▀▀▀▀▀▀▀▀▀ ▀▀r╢╢╢ ▀▀▀▀▀▀▀▀▀▀▀▀▀  rr))▀▀▀▀)JJ)    rr)III╗▀▀▀rr╗  ▀▀▀▀▀    ▀▀ ▀▀▀n%%%%%%%%)%%%%%%%%%      %%%%%%%╢╢    █     ▀   ██nn%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))▀▀▀▀  IIIIn   ╗╗IIIÆ    █    ██   █▀▀ ▀▀▀╢II███▀))))))))))))))))▀▀▀▀▀IIIIIII)))I)))▀▀▀▀▀▀))IIIIIIÆÆ ██ÆÆII ▀  )))I    rrIIII█▀  nn▀██  ██  ██▀▀▀▀╗╗╗)%%%%%%%%%%%%%%))%      %%%%%%%      %%%%%%%Æ    ÆÆ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))      IIIIr   ╗╗III╢    ▀  ▀▀╖╖██████████╢II▀▀▀ IIIJJJJJJJJJJJJJ    ▀IIIIIIIIIIIII)      IIIIIIIIÆÆ   ûûII▀▀██IIII▀▀▀ rrIIII█   rr   ▀▀║║███████╗ûûû)%%%%%%%%%%%%)%%%%%▀▀ ▀▀▀%%%%%%%   ▀▀▀%%I%%%%Æ    ÆÆ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))▀▀▀█▀▀))))r   ╢╢IIIÆ██  ▀  ██ÆÆnnnrnnnnnnr))▀  ▀II))))))****)))I██  ▀rrrrnnnrrrrrrN███▀▀▀rrrrrnrr╢╢█  ÆÆII▀ ▀▀ÆnnÆ███▀ûûnnnn█ ▀▀nn▀  ██ÆÆnnnnnnnnrrr%%%%%%%%%%rnnnnn▀▀▀███nnnnnnI██    nnnnnnn╢  ██ÆÆ)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*JJ╖╖╖╗╗╗JIIIN╗╗╗ûûIIIÆ╗╗╗╗rûû╗╗╗╗█╗╗╗╗╗╗████rr╗╗╗╗))))))))))))))))nnûû╗╗╗╗█╗╗╗╗╗╗╗╗╗rNNNû╗╗╗╗███╗╗╗╗╗╖ÆÆIIJJ█╗╗╗╗███╗╗╗╗╗╗████╗╗ÆÆ))NÆÆ╗╗███╗╗╗╗╗╗█╗╗╗n))%%%%%%%)))║████╗╗╗╢╗╗╗███╗╗╗INNÆ╢╢╢╢█╗████╗╢╢ÆÆII%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%JJJJJJNNN)JJJ)NNJJJ)**JJJJJ)NNNNJJ*JJJJJIJJJJ))NII)************JJN)))IIJIII)II)JJJJNN))))NJJNNJJJ)IINNJJJ))))NNJJJJJJIIINIIIIIIJJII))JJJJJJJJ)JJJJJ)III%%%%%%%%%)%%%%%%%%)))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)**)))J)))***)**)JJJJJ*)))))**))***JJ)JJ))))))))))*))))))))))))))**))JJ)))))JJ)***)JJ)JJJJ))))))J))))))))JJ))))JJJJJJ)))J)))JJJ))))JJ)**))))JJJJ)II))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ùrNr%%%%%%))%%%%)%%))J)*%%%%%%%%%%%%%%%%%%%%%%%%%%)NJ%%%%%%%%%%%%%%%%%%%%%%%%%%%$%J$%%ùrNr%%%%%%))%%%%)%%))J)*%%%%%%%%%%%%%%%%%%%%%%%%%%)NJ%%%%%%%%%%%%%%%%%%%%%%%%%%%$%J$%%▀█NN%%$%%%%)%%%%))))))%%$%%%%%%%%%%%%%%%%%))%%J**JNN**)%%%$%%%%%%%%%%%%%%%%$$N$%%$%%%%%███%%%)))%%%))%%%%%%%%%%%%%%%%%))))%%%*rÆrNrrrrrùùùNJ%%))%%%%%%%%%%%%%%%%%%%%%%$$%%))% $%$%%%%%▀%%%)*%%%%%%%%%%%%%%%%%%)*%%%))%%%%%).*))%))J*)%%%%%%)*JNJ)%%%%%%%%%%%%%%%%)%**%%$%%%%%%%%%████╗▀█%%%NNJ%%%%%%%%%$%%%%%%%%%%%%%%)))))%%%)%)N***NN%%*nN)N%%%))%%%%)))III%%%%%%%%%%%%%%)J$$$%%%%%%%%%%%%%%%ù████╗ÆN%%)JnN%)JNJ%%%%%%%%%%%%%%%)))))))))))))))NrNJ)%*Nrrn*))))JNNNN*)))))**)%%%%%%%%%%%)%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))))))))))J)J)))J))))))J*)))))))))********J))))))**)))I%))***)****))))))))██▀▀%%%%%%%$%nN)%%%%JnNNNNN)))))%%)%%%%)))%%%%%%%%%%%%))%%%%%))))))))))*)))))))%)I%%%%%%%%%%%)))))))%%%%%%)%)))))))))))J)J)))J))))))J*)))))))))********J))))))**)))I%))***)****))))))))%%%)*JJJNJJ**J**J)JINJJJ*JJ***))J*J*NJ***J*J****JJJJJJNJJJJJJJNJJJJJJJ*)J*))))██N%%  $%%%%%%%%%%%J)%%)JNNNNN))%%%%%%))%%%%%%%%%%)%%%%%%%%%%%%%%%%%%%%%%%)%)))))))))%%)*$%%%%%%)%%%%%%%%%%%%%%%)%)*JJJNJJ**J**J)JINJJJ*JJ***))J*J*NJ***J*J****JJJJJJNJJJJJJJNJJJJJJJ*)J*))))%%%)*JJJNJJ**J**J)JINJJJ*JJ***))J*J*NJ***J*J****JJJJJJNJJJJJJJNJJJJJJJ*)J*))))██N%%  $%%%%%%%%%%%J)%%)JNNNNN))%%%%%%))%%%%%%%%%%)%%%%%%%%%%%%%%%%%%%%%%%)%)))))))))%%)*$%%%%%%)%%%%%%%%%%%%%%%)%)*JJJNJJ**J**J)JINJJJ*JJ***))J*J*NJ***J*J****JJJJJJNJJJJJJJNJJJJJJJ*)J*))))%%%)))**)J)%*)))))))*)****))))IIIIIIIIIIIIIIIIIIII)))*)))**))))))*))))))))))))█▀███▀█J%$$$$%%%%%%%)%I%I%)*)%))%)))%)%%%%%%%%%%%%%%%%%%))%%%%%%%%%%%%%%%%%%%%%%%%%%αα))%%%%%%)N%%%%%%%%%%%%%%%%%%%%αα)))**)J)%*)))))))*)****))))IIIIIIIIIIIIIIIIIIII)))*)))**))))))*))))))))))))%%%))))***)))))))*)))*I))IIEImÆ║┌┌╢ÆmIIIIIIInÆÆ╢█┌┌┌ÆmEI%II)J)))))))*)))))))))████▀██  Æ%%%%%%%%%$))Æ╖╖╗r%%%%%%)%)))%))))))%%*N)))%%%%%%))%%%%%)%%αα%%%%%%*N)%%%%%%%%%%%%%%%%%%%αα))))***)))))))*)))*I))IIEImÆ║┌┌╢ÆmIIIIIIInÆÆ╢█┌┌┌ÆmEI%II)J)))))))*)))))))))%%%)))))))))))))**)JJ)IIIIì┌╢ÆIII)))II)))))IIIIII%m▓┌√┌╢ÆmIII))*)J))))))))))))▀███╗╗╗██ ▀█%%$$$%%J╗██ùùû%%%%%%%*NNNJJ)))))))NNJ*))))%%%))JNNN)%%ααJN)%%%%%%%%%%%%%%%%)%αα)))))))))))))**)JJ)IIIIì┌╢ÆIII)))II)))))IIIIII%m▓┌√┌╢ÆmIII))*)J))))))))))))%%%)))*))))))))))JII)I╢ÆI)I))**J*)))))))))))***J%)))))IIim╢╢ÆI))))*****)))))))█╗██ùùù╗████▀J)%%%rÆrÆ╗╢╖▀╗╗███▀▀█╖N)))%%%%%%%%%%%%))J))%))JJ*))))J**)%%%))J)%%αααα)))*))))))))))JII)I╢ÆI)I))**J*)))))))))))***J%)))))IIim╢╢ÆI))))*****)))))))%%%))J*))JJJ))*JJIIm╢┌IIMI*****JJJJJJJJJJ)I*N***))JNJJJJJIImìæIIIJJJJJJ)))))))██rNù██▀██╖█╖╗█╗█▀▀███▀█▀▀███╗╗╖██╗rrrNJ)%))%ûù%%%%)%%%))))%%%))JJ*))))JJJ))%%%%)%%αααααααααααααααααααααααααααααααααααααααααααααααααααααααα)αααα)JJααααJJIImααααMI*αααααJJJJJJJαααααN***αααααJαJJαααìæIIIJJJJJJ)))))))%%%)))))))))))*I%i╢ÆII)))))****)**J*J))*))))***)))**)*)JI)))IDIm))))))))))))))ùùù████╗███r╖████▀█  ▀  ▀█ù█û*Nvù█ █N%)%))*%)%%%%%%%%%%%%%%%%%))**)%%%%%%%%ααααααααααααααααααααααααααααααααααα)α))αα))α))αα%i╢ααI)αα))*ααα)**J*Jααα)))ααα*))ααα)*ααα))ααDIm))))))))))))))%%%))))))I))J%û┌╢)I))J))*))))))))))%I$II))))JJJ*))))IIDDDDi▓▓mII%%))))))))))))▀█▀ ███╗wR╗██╗█▀╗╗ûû████ù**r█▀   r**J)n%%%%%%$%%%))%%%%)))))ααααααααααααααααααααααααααααααααααα)))αααI))Jααα╢)αααJ)ααα))ααα))))%αααI)))αααJ*)αααIIαααDiαααII%%))))))))))))%%%))))))I))J%û┌╢)I))J))*))))))))))%I$II))))JJJ*))))IIDDDDi▓▓mII%%))))))))))))▀█▀ ███╗wR╗██╗█▀╗╗ûû████ù**r█▀   r**J)n%%%%%%$%%%))%%%%)))))ααααααααααααααααααααααααααααααααααα))ααααI))αααα╢)αααJ)ααα))ααα))))%ααII)))αααJ*)αααIIαααDiαααII%%))))))))))))%%%)))))JJ)*)I┌╢MI)))%***))*))IIII%$D$mm)II)*J))))IIIIHhhîìæmI)))%))))))))))))█╗ùùùù╖╗█▀███╗╖█▀   █r*).rùùÆrNNN╗█ùN%%%)%)%)))αααααααααααααααααααααααααααααααααααααα)ααααJJ)αααα╢MIααα%*ααα)*αααIII%αααmm)ααααααα)αααIIαααîìααα)))%))))))))))))%%%))IJJIIJJI╢ÆIIJJJJIJJ)J)IIIII$lììîî▒▒╢mIIJJJJIIHDDh╨╒╒╒îmIIJ*JJJ)JJ))***)))╗╖╗████▀█████╗û╗█╖Nrùrsûùrrwwrr**%%%))%%%%)))ααααααααααααααααααααααααααααααααααααααααααα)αααJIIJαααÆIIJαααIJααα)IαααIααìααα▒▒╢mIIJJJJIαααDhααα╒îαααJ*JJJ)JJ))***)))%%%)))JJJIImmIJJJIIIJJnû╢┌▒░╒╒╒∙∙⌡ê¼∙∙·╒êîîæiiiIæ┘∙∙∙⌡∙∙·╤hiII))J)JJ)JM)IIIIII█ùrû▀ ╖**N**NNNJ%%%%%%%%%$$))%%%))))ααααααααααααααααααααααααααααααααααααααα)ααJJαIIααIJαJIIααJnαα┌▒░ααααααêααα·╒êîîæiiiIæααα∙⌡ααααhααI))J)JJ)JM)IIIIII%%%)))))IIHæII*)J))))))Im╓┌╒∙∙∙∙⌡⌡¼¼∙∙··╒╒▒ìHDD$æ∙∙∙∙⌡⌡∙·¡hIII))))**)IM)))))))╖rwù█╗N*N*NNRRN%%%%))))%%%$)%%)ααααααααααααααααααααααααααααααααααααααααα))ααααIHæααααJ)))ααααm╓┌αααα∙αα¼ααα··╒╒▒ìHDD$αααα∙⌡ααα¡ααII))))**)IM)))))))%%%)))))))m╢II)))JJ)))IIì┌·⌡∙∙∙∙∙∙╒╒∙∙╒····╒hHHH▒∙·∙∙⌡∙⌡∙îhIII)))***))MI))))))████╗NN*NNRRNû╗███╢%)**NNJJ*%%%%$%$ααααααααααααααααααααα)))))))m╢II)))JJ)))IIì┌·⌡∙∙∙∙∙∙╒╒αα╒····╒hαHH▒∙·∙∙⌡αααîhIII)))***))MI))))))%%%))*)I%$┘╒╓▒$I))**%*I)Hæ╒∙∙∙∙∙∙⌡∙╒╒·æmIIII┌■■■·╒∙∙∙╨∙∙∙êîIIIJ))J))))I╓mII)))ùùùN*JNrrsù╗╗██▀ ┌%%%%%%%%%%%%%%%$αααααααααααααααααααααααααα))*)I%$┘╒╓▒$I))**%*I)Hæ╒∙∙∙∙∙∙⌡∙╒αααmIIIIαα■■·ααα∙╨αααêîIIIJ))J))))I╓mII)))%%%))JIE h╒╒∙╒┌╢mJ**J)IIì┘┘∙∙∙∙∙∙·¼îæmI)JJN**IIû ·∙∙⌡∙∙∙∙îîIIIJJ*JJ)JIE·▒mm)))ùûûù╗████████▀█%IJn)%%%NNr.NN)%%%%%$%ααααααααααααααααααααααααααα))JIE h╒╒∙╒┌╢mJ**J)IIì┘┘∙∙∙∙∙∙·¼îæαααJJNαααIû ααα⌡∙αααîîIIIJJ*JJ)JIE·▒mm)))%%%))JIE h╒╒∙╒┌╢mJ**J)IIì┘┘∙∙∙∙∙∙·¼îæmI)JJN**IIû ·∙∙⌡∙∙∙∙îîIIIJJ*JJ)JIE·▒mm)))ùûûù╗████████▀█%IJn)%%%NNr.NN)%%%%%$%ααααααααααααααααααααααααααααααααααααααααα))JIE h╒╒∙╒┌╢mJ**J)IIì┘┘∙∙∙∙∙∙·¼îæmIαααα**αIû ααα⌡ααααîîIIIJJ*JJ)JIE·▒mm)))%%%))II$Dì╒╒∙╒■ Æ)))IIIm╒┘∙∙∙∙∙∙∙∙î¼▒mI)))*)*)%I ··∙∙∙∙∙∙îîII))))**%)II·▒hi)))╗╗████████████%))%%%%%nrrrwrJ%$%%%$))II$Dì╒╒∙╒■ Æ)))IIIm╒┘∙∙∙∙∙∙∙∙î¼▒mI)))*)*)%I ··∙∙∙∙∙∙îîII))))**%)II·▒hi)))%%%)IIDDh▒╒∙·Æ)))n╢┌┌┌·■·╒╤∙∙∙°∙∙╒hmm)J))J)))))Ih··╒∙∙∙∙∙êîiI))))))JJII·╓hi)))▀▀█ Æ%$%%%))%%%%%)))%%)))%%%I%%%J)))))IIDDh▒╒∙·Æ)))n╢┌┌┌·■·╒╤∙∙∙°∙∙╒hmm)J))J)))))Ih··╒∙∙∙∙∙êîiI))))))JJII·╓hi)))%%%))IDDh▒┘·ÆIJJ)r┌█√  ···╤∙∙∙°∙∙╒hìI))))*))I)IIæ··⌡∙∙∙∙∙êîII)))))*)))I·╓hh)))╢I%)%%%%%)**)%)J))JN*)I))%%J)))%%%%%%%)))%%%))IDDh▒┘·ÆIJJ)r┌█√  ···╤∙∙∙°∙∙╒hìI))))*))I)IIæ··⌡∙∙∙∙∙êîII)))))*)))I·╓hh)))%%%))I$Dh╓■┌%I**JIII)IDh▒┘∙∙∙°°°∙╤hìII))))%)))I%▒··⌡∙∙∙∙∙êîiI%))))*)))I√╓hi))))%%%%%%%)**N))%)JJJJ)))%*N*))%%%%%))))%%))I$Dh╓■┌%I**JIII)IDh▒┘∙∙∙°°°∙╤hìII))))%)))I%▒··⌡∙∙∙∙∙êîiI%))))*)))I√╓hi)))%%%))IDH▓ I))))*JIIIIm╒╒╒∙·⌡∙∙⌠∙∙╤êìII)))))*I)))▒∙∙╒∙∙∙∙∙êîII)))))))II··▒DiII)▀█╗%%%%%%)))JNNNNJ)%%$%%%)**NNNJJJ))))%%%%)%%%αα  ))IDH▓ I))))*JIIIIm╒╒╒∙·⌡∙∙⌠∙∙╤êìII)))))*I)))▒∙∙╒∙∙∙∙∙êîII)))))))II··▒DiII)%%%))IHh┌ IJ)J)IIImmæ╢·┌┌┌·⌡∙∙⌠∙∙╤hìIIJ*IJJJJJII╒··╒∙∙∙∙∙êîiIIJ*)J)IIi·┌▒hhII)██n%%%)))))JNNNNRN)$%*NRrNNNJJ*))))%%)%%%%%%αααα ))IHh┌ IJ)J)IIImmæ╢·┌┌┌·⌡∙∙⌠∙∙╤hìIIJ*IJJJJJII╒··╒∙∙∙∙∙êîiIIJ*)J)IIi·┌▒hhII)%%%))Ih▒┌Æ)))))IInÆ▓▓▓ÆÆ╢  ╒∙∙⌡∙⌡╒hìiI)))))IJIIH┘··⌡∙⌡∙∙·êîII)))))IIæ·∙╒▒êhIJ*%))J**JNRRRrrNNNNr*)ssrrNNNN*JJJJ*))*)))%%%%αααα ))Ih▒┌Æ)))))IInÆ▓▓▓ÆÆ╢  ╒∙∙⌡∙⌡╒hìiI)))))IJIIH┘··⌡∙⌡∙∙·êîII)))))IIæ·∙╒▒êhIJ*%%%))Ih▒┌Æ)))))IInÆ▓▓▓ÆÆ╢  ╒∙∙⌡∙⌡╒hìiI)))))IJIIH┘··⌡∙⌡∙∙·êîII)))))IIæ·∙╒▒êhIJ*%))J**JNRRRrrNNNNr*)ssrrNNNN*JJJJ*))*)))%%%%  α))Ih▒┌Æ)))))IInÆ▓▓▓ÆÆ╢  ╒∙∙⌡∙⌡╒hìiI)))))IJIIH┘··⌡∙⌡∙∙·êîII)))))IIæ·∙╒▒êhIJ*%%%))Il┌▓IJ%))))))J))J)IIÆ·∙∙╘êê·╒dìæiI))**)IIIì┘∙∙∙∙░∙∙·hîiII)))r ╓┌┌∙╒¼▒DI))▀%%%)*NNNrrrrrsr**ûù╗ùùRNNrrrrNNNNNNNJ)%))))))))) ααααααααα  αα))Il┌▓IJ%))))))J))J)IIÆ·∙∙╘êê·╒dìæiI))**)IIIì┘∙∙∙∙░∙∙·hîiII)))r ╓┌┌∙╒¼▒DI))%%%))Im┌æIJ))))))))))*%)Im┌∙∙⌡░¼∙╒d▒╒i)))**)IIm╡┘··∙╒¼∙∙·êîI%I)))N█√■·∙╒¼ìD))*▀████û%%)*NRrRNNnnù╗rNrrùùsNNrwùùùùùùvvRN))))))))))       αααααα  αα))Im┌æIJ))))))))))*%)Im┌∙∙⌡░¼∙╒d▒╒i)))**)IIm╡┘··∙╒¼∙∙·êîI%I)))N█√■·∙╒¼ìD))*%%%))IÆ mIJ)J)JN)***)*IIIi╓∙∙∙∙∙∙·╤ê▒▒IJ**J)Iæ╓┌╒··∙∙╒∙∙∙¼▒mIIJ)JJJIm┌·┌╒l$J**██╗╗╗╖╗Æ%%))*****J)))NrnNNùwrNnùùùrNrrrwrN*%%))))))))))      ααα  ααα ααα))IÆ mIJ)J)JN)***)*IIIi╓∙∙∙∙∙∙·╤ê▒▒IJ**J)Iæ╓┌╒··∙∙╒∙∙∙¼▒mIIJ)JJJIm┌·┌╒l$J**%%%))I╢█I)))))J)J*))))IIi▒╒⌡∙∙┌┌┌   æmI)J))I█  █╢   ■·∙∙⌡╒îiII))))))J)I┌▓DII))ûûù╗╗╗╗╗█╗╖rI*$$))**)%%%%*N%))))))))))   ααα   ααα  αααα))I╢█I)))))J)J*))))IIi▒╒⌡∙∙┌┌┌   æmI)J))I█  █╢   ■·∙∙⌡╒îiII))))))J)I┌▓DII))%%%))*NrJ)**JIJJ)*))))Imìì▒■  ┌ÆE)I)IÆnI%)))))))))%n╢ ■·┌┌hiiI))))))))%)$)I)))╗╗╗╗╖╖╗ùNNNNN )))%%JJNNJ%%NN%%))))))))  ααα   ααα ααα α ))*NrJ)**JIJJ)*))))Imìì▒■  ┌ÆE)I)IÆnI%)))))))))%n╢ ■·┌┌hiiI))))))))%)$)I)))%%%)J*)J))*)))J*JJJJJJImæ▒╓ ┌╢m%)))I)IÆnII)))))))))%I╢■■··ìhiI)))))IJJI))II*))█╗ùnJJùùrJ)*NN%%))%%*NNNNN)NJ%)))))))))   ααα  ααα  ααα α )J*)J))*)))J*JJJJJJImæ▒╓ ┌╢m%)))I)IÆnII)))))))))%I╢■■··ìhiI)))))IJJI))II*))%%%))*)))))*JJ*)I))ImÆ █▓nI%*)))))))))J*)*J*))))))***)%I╢┌ ┌ìlhIII**)I)II))**)NrrNJNôùùù╗╗╗╗r%%%*NswwùùùùùùùùùùùùùrnNrrr*)%%)))))))))   ααααααα  ααα  α))*)))))*JJ*)I))ImÆ █▓nI%*)))))))))J*)*J*))))))***)%I╢┌ ┌ìlhIII**)I)II))**)%%%)JJJ*JJJJJJJIIImû┌ ╢mIIJJJJJJNJNJJJJJ*)**JJJJJN**J*JIIn √┌ìlmIiJJIIIIIIIJJJ****r╗ùrNN╗███Æ%)*Nrrrrùùùssùùùùùùùsrr**))$%))))))))    αααααα  ααααα ααα)JJJ*JJJJJJJIIImû┌ ╢mIIJJJJJJNJNJJJJJ*)**JJJJJN**J*JIIn √┌ìlmIiJJIIIIIIIJJJ%%%)JJJ*JJJJJJJIIImû┌ ╢mIIJJJJJJNJNJJJJJ*)**JJJJJN**J*JIIn √┌ìlmIiJJIIIIIIIJJJ****r╗ùrNN╗███Æ%)*Nrrrrùùùssùùùùùùùsrr**))$%))))))))   ααα ααα        )JJJ*JJJJJJJIIImû┌ ╢mIIJJJJJJNJNJJJJJ*)**JJJJJN**J*JIIn √┌ìlmIiJJIIIIIIIJJJ%%%I)**JJJIIÆ╢   ╢I)IJ*))*))JI))J)))JJ))))))))))*)))I)J**)N))%╢┌ ┌╓╢┌┌IJJ***))╗████╗ù╗█╗╗û╗███╗█╢$%nNrrrrrùùùsrRNNNNNNJ)%%%)))%)   ααα ααα     I)**JJJIIÆ╢   ╢I)IJ*))*))JI))J)))JJ))))))))))*)))I)J**)N))%╢┌ ┌╓╢┌┌IJJ***))%%%II)))))JIû█┌ìIIJ))*J***)III))*))))*))))))***))J)))))JJ)))))II)I)IMI))**))))╖ùrrÆrù╗╗ùù╗██████▀%NNNrNNrRNNrrrrrrRNN%%%%))     ααα ααααII)))))JIû█┌ìIIJ))*J***)III))*))))*))))))***))J)))))JJ)))))II)I)IMI))**))))%%%)))))))%)mÆ┌ÆII))))))%))))))))))*)J))))*J)))))))))**)))))%)IIII)I)%)))))))J█╗╗╗╗╖╗╗╗ùùùùrrùù╖ûûÆ$%%)JNnN%     αααααααααα)))))))%)mÆ┌ÆII))))))%))))))))))*)J))))*J)))))))))**)))))%)IIII)I)%)))))))J%%%))**))))J))IÆ╢╢II)*)))%))))))*)))))*)*)))))J)))*)*J))))))))))*)))))))))*)))ûûrrNNrù╗╖╖╗██▀▀▀   █╢%       ))**))))J))IÆ╢╢II)*)))%))))))*)))))*)*)))))J)))*)*J))))))))))*)))))))))*)))%%%)*)**JJJ)NJJIm▓ÆrIIJJJJ*))NJN)IIIIIJIJ***IIJIIJIJIIJNJJJJNJ)JJJJJJJJ**JJ)*J███▀██████████████╗█╗rr╗%)*)**JJJ)NJJIm▓ÆrIIJJJJ*))NJN)IIIIIJIJ***IIJIIJIJIIJNJJJJNJ)JJJJJJJJ**JJ)*J%%%)))))))))))))%Im╢ûÆ))))))))))IææhiD))))*))))*)))***))))*)))))))))))J*))))))██████████████ù╗ùvRrwùÆû╖%$)))))))))))))%Im╢ûÆ))))))))))IææhiD))))*))))*)))***))))*)))))))))))J*))))))%%%))JJJJJJJJJJIIJ)IIM╢ÆnIIIIIì╢▒¼··╓╒mmIIIIIIIIIIIJJJJJJJJJ*JJJJJ*JJ*JJJJJ*JJ██╗N**)NrN)********Nrù╖╗╗╗╗╗ù╖╖ù╖╖nJ))JJJJJJJJJJIIJ)IIM╢ÆnIIIIIì╢▒¼··╓╒mmIIIIIIIIIIIJJJJJJJJJ*JJJJJ*JJ*JJJJJ*JJ%%%))JJJJJJJJJJIIJ)IIM╢ÆnIIIIIì╢▒¼··╓╒mmIIIIIIIIIIIJJJJJJJJJ*JJJJJ*JJ*JJJJJ*JJ██╗N**)NrN)********Nrù╖╗╗╗╗╗ù╖╖ù╖╖nJ))JJJJJJJJJJIIJ)IIM╢ÆnIIIIIì╢▒¼··╓╒mmIIIIIIIIIIIJJJJJJJJJ*JJJJJ*JJ*JJJJJ*JJ%%%))**))*))*J))))))))Inû║║ææ╢▒æ··■·····┌┌╓╓▓ÆæææmÆÆÆÆ╗╖rN)))))))*)*))))))))))█╖NNrù█╗ùnnNN*)JJ)))*rùùùù╖╗╗╗╗╗╖ÆJ%%))**))*))*J))))))))Inû║║ææ╢▒æ··■·····┌┌╓╓▓ÆæææmÆÆÆÆ╗╖rN)))))))*)*))))))))))%%%))JJJJJJJJJJJ***JJ*JNIII║▀ⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿ█╢IJ))J)JJJJJJJJJJJJJJ*JJ*r¢█╗╗╗█████╗ùNNNNNJ*NNNRNNNrrrNNN))JJJJJJJJJJJ***JJ*JNIII║▀ⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿⁿ█╢IJ))J)JJJJJJJJJJJJJJ*JJ*%%%))*JJJJJJJJJJJJJJ)*JJJJJJJJJJJIIIJJIIIII)))JJJJJJJJ)JJJJJJJJJJJJJJJJJJJJJJJ))*JJJJJJJJJJJJJJ)*JJJJJJJJJJJIIIJJIIIII)))JJJJJJJJ)JJJJJJJJJJJJJJJJJJJJJJJSystem\Manifest.ini⌡System\Manifest.int⌡wSystem\KOTA.ul▄╞System\KOTA.intH╠#Help\KOTAv155Readme.txtk═÷ Images\k_O_t_A.bmpa┌qú┼πƒKSLºMx7